home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 101 / CD-ROM 101.iso / compl / maya5ple / Install_MayaPLE5_English.exe / Maya / Data1.cab / AErenderGlobalsTemplate.mel < prev    next >
Encoding:
Text File  |  2003-07-17  |  27.3 KB  |  947 lines

  1. // Copyright (C) 1997-2002 Alias|Wavefront,
  2. // a division of Silicon Graphics Limited.
  3. //
  4. // The information in this file is provided for the exclusive use of the
  5. // licensees of Alias|Wavefront.  Such users have the right to use, modify,
  6. // and incorporate this code into other products for purposes authorized
  7. // by the Alias|Wavefront license agreement, without fee.
  8. //
  9. // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  10. // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  11. // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  12. // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  13. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  14. // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. // PERFORMANCE OF THIS SOFTWARE.
  16. //
  17. //
  18. //  Alias|Wavefront Script File
  19. //
  20. //  Creation Date:    May 7, 1997
  21. //  Author:        sw
  22. //
  23. //  Procedure Name:
  24. //    AErenderGlobalsTemplate
  25. //
  26. //  Description:
  27. //    Creates the attribute editor controls for the renderGlobalsNode
  28. //
  29. //  Input Value:
  30. //    nodeName
  31. //
  32. //  Output Value:
  33. //    None
  34. //
  35.  
  36.  
  37. ///////////////////////////////////
  38. // custom Layout for Renderable Cameras list
  39. ///////////////////////////////////
  40.  
  41. //
  42. //  Procedure Name:
  43. //    AEcameraListNew
  44. //
  45. //
  46.  
  47. global proc AEcameraListNew ()
  48. {
  49.     setUITemplate -pst attributeEditorPresetsTemplate;
  50.     rowLayout -nc 5;
  51.         text -l "";
  52.         text -l "Renderable";
  53.         text -l "Image";
  54.         text -l "Mask";
  55.         text -l "Depth";
  56.     setParent ..;
  57.  
  58.     string $allCameras[] = `ls -ca`;
  59.     string $parents[];
  60.     string $outputName;
  61.     int    $i;
  62.  
  63.     for ($i = 0; $i < size($allCameras); $i++) {
  64.         $parents = `listRelatives -p $allCameras[$i]`;
  65.         $outputName = `getAttr ($allCameras[$i] + ".imageName")`;
  66.         setUITemplate -pst attributeEditorTemplate;
  67.         checkBoxGrp -ncb 4 
  68.             -l ($parents[0] + " [" + $outputName + "]")
  69.             -l1 "" -l2 "" -l3 "" -l4 ""
  70.             ("AEcameraAE" + $i);
  71.         connectControl -in 2 ("AEcameraAE" + $i) ($allCameras[$i] + ".renderable");
  72.         connectControl -in 3 ("AEcameraAE" + $i) ($allCameras[$i] + ".image");
  73.         connectControl -in 4 ("AEcameraAE" + $i) ($allCameras[$i] + ".mask");
  74.         connectControl -in 5 ("AEcameraAE" + $i) ($allCameras[$i] + ".depth");
  75.         setUITemplate -ppt;
  76.     }
  77.     setUITemplate -ppt;
  78. }
  79.  
  80. //
  81. //  Procedure Name:
  82. //    AEcameraListReplace
  83. //
  84. //
  85.  
  86. global proc AEcameraListReplace()
  87. {
  88.     setUITemplate -pst attributeEditorTemplate;
  89.     string $allCameras[] = `ls -ca`;
  90.     string $parents[];
  91.     string $outputName;
  92.     int    $i;
  93.  
  94.     for ($i = 0; $i < size($allCameras); $i++) {
  95.         $parents = `listRelatives -p $allCameras[$i]`;
  96.         $outputName = `getAttr ($allCameras[$i] + ".imageName")`;
  97.         if (`checkBoxGrp -exists ("AEcameraAE"+$i)`) {
  98.             setUITemplate -pst attributeEditorTemplate;
  99.             checkBoxGrp -e
  100.                 -l ($parents[0] + " [" + $outputName + "]")
  101.                 -l1 "" -l2 "" -l3 "" -l4 ""
  102.                 ("AEcameraAE" + $i);
  103.             connectControl -in 2 ("AEcameraAE" + $i) ($allCameras[$i] + ".renderable");
  104.             connectControl -in 3 ("AEcameraAE" + $i) ($allCameras[$i] + ".image");
  105.             connectControl -in 4 ("AEcameraAE" + $i) ($allCameras[$i] + ".mask");
  106.             connectControl -in 5 ("AEcameraAE" + $i) ($allCameras[$i] + ".depth");
  107.             setUITemplate -ppt;
  108.         } else {
  109.             setUITemplate -pst attributeEditorTemplate;
  110.             checkBoxGrp -ncb 4 
  111.                 -l ($parents[0] + " [" + $outputName + "]")
  112.                 -l1 "" -l2 "" -l3 "" -l4 ""
  113.                 ("AEcameraAE" + $i);
  114.             connectControl -in 2 ("AEcameraAE" + $i) ($allCameras[$i] + ".renderable");
  115.             connectControl -in 3 ("AEcameraAE" + $i) ($allCameras[$i] + ".image");
  116.             connectControl -in 4 ("AEcameraAE" + $i) ($allCameras[$i] + ".mask");
  117.             connectControl -in 5 ("AEcameraAE" + $i) ($allCameras[$i] + ".depth");
  118.             setUITemplate -ppt;
  119.         }
  120.     }
  121.  
  122.     // delete any unused checkBoxGrps
  123.     //
  124.     while (`checkBoxGrp -exists ("AEcameraAE"+$i)`) {
  125.         deleteUI ("AEcameraAE"+$i);
  126.         $i++;
  127.     }
  128.  
  129. }
  130.  
  131. ////////////////////////////////////////////////////
  132. // custom Layout for the render quality attribute
  133. ////////////////////////////////////////////////////
  134.  
  135. global string $gAErenderGlobalsQualityLUT[];
  136.  
  137. proc string getCurrentRenderQualityMenu()
  138. {
  139.     global string $gAErenderGlobalsQualityLUT[];
  140.  
  141.     // look for the correct parent
  142.     //
  143.     string $curParent = `setParent -q`;
  144.     int    $index = -1;
  145.     int $i;
  146.     for ($i = 0; $i < size($gAErenderGlobalsQualityLUT); $i += 2 ) {
  147.         if ( $curParent == $gAErenderGlobalsQualityLUT[$i] ) {
  148.             $index = $i+1;
  149.             break;
  150.         }
  151.     }
  152.     string $menu = "renderQualityMenu";
  153.     if ($index != -1) {
  154.         $menu = $gAErenderGlobalsQualityLUT[$index];
  155.     }
  156.     return $menu;
  157. }
  158.  
  159. //
  160. //  Procedure Name:
  161. //    AEnewRenderQuality
  162. //
  163. //
  164.  
  165. global proc AEnewRenderQuality ( string $quality )
  166. {
  167.     string $node = `renderQualityNode`;
  168.     connectAttr -f ($node + ".message") $quality;
  169.     showEditor $node;
  170. }
  171.  
  172. //
  173. //  Procedure Name:
  174. //    AErenderQualityNew
  175. //
  176. //
  177.  
  178. global proc AErenderQualityNew (string $quality)
  179. {
  180.     global string $gAErenderGlobalsQualityLUT[];
  181.  
  182.     string $buffer[];
  183.     tokenize($quality,".",$buffer);
  184.     string $nodeName = $buffer[0];
  185.  
  186.     setUITemplate -pst attributeEditorTemplate;
  187.     string $connect[] = `listConnections $quality`;
  188.     string $allQual[] = `ls -rq`;
  189.     int $i;
  190.  
  191.     $numUI = size($gAErenderGlobalsQualityLUT);
  192.     $gAErenderGlobalsQualityLUT[$numUI] = `setParent -q`;
  193.  
  194.     rowLayout -nc 3 renderQualityLayout;
  195.         text -l "Render Quality" renderGlobalsText;
  196.         string $menu = `optionMenu -l "" renderQualityMenu`;
  197.         optionMenu -e
  198.             -cc ("AEeditRenderQuality "+$menu+" "+$quality)
  199.             renderQualityMenu;
  200.             for ($i = 0; $i < size($allQual); $i++)
  201.             {
  202.                 menuItem -l $allQual[$i] ("renderQualityAE" + $i);
  203.                 if ($connect[0] == $allQual[$i])
  204.                     optionMenu -e -sl ($i+1) $menu;
  205.             };
  206.         setParent -m ..;
  207.         button -l "New"
  208.             -c ("AEnewRenderQuality " + $quality)
  209.             newRenderQualityButton;
  210.     setParent ..;
  211.     scriptJob
  212.         -p $menu -rp
  213.         -ac $quality ("AErenderQualityMenuUpdate "+$menu+" "+$nodeName);
  214.     setUITemplate -ppt;
  215.     $gAErenderGlobalsQualityLUT[$numUI+1] = $menu;
  216. }
  217.  
  218. //
  219. //  Procedure Name:
  220. //    AErenderQualityReplace
  221. //
  222. //
  223.  
  224. global proc AErenderQualityReplace (string $quality)
  225. {
  226.  
  227.     // get the nodeName
  228.     //
  229.     string $buffer[];
  230.     tokenize($quality,".",$buffer);
  231.     string $nodeName = $buffer[0];
  232.  
  233.     // get parent
  234.     //
  235.     string $menu = getCurrentRenderQualityMenu();
  236.  
  237.     // update the option menu
  238.     //
  239.     AErenderQualityMenuUpdate($menu,$nodeName);
  240.  
  241.     // update the scriptJob
  242.     //
  243.     scriptJob
  244.         -p $menu -rp
  245.         -ac $quality ("AErenderQualityMenuUpdate "+$menu+" "+$nodeName);
  246. }
  247.  
  248. //
  249. //  Procedure Name:
  250. //    AErenderQualityUpdate
  251. //
  252. //
  253.  
  254. global proc AErenderQualityMenuUpdate (string $menu, string $nodeName)
  255. {
  256.     string $connect[] = `listConnections ($nodeName+".quality")`;
  257.     string $allQual[] = `ls -rq`;
  258.     int $numQualities = size ($allQual);
  259.  
  260.     setParent -m $menu;
  261.  
  262.     // relabel menuItems that already exist
  263.     //
  264.     int $numOptions = `optionMenu -q -ni $menu`;
  265.     string $optionMenuItems[] = `optionMenu -q -ill $menu`;
  266.     int $i = 0;
  267.     while ( $i < $numOptions && $i < $numQualities ) {
  268.         menuItem -e -l $allQual[$i] $optionMenuItems[$i];
  269.         if ($connect[0] == $allQual[$i])
  270.             optionMenu -e -sl ($i+1) $menu;
  271.         $i++;
  272.     }
  273.  
  274.     // if we've run out of menu items and need more, create
  275.     // them now, else, delete any excess menuItems
  276.     //
  277.     if ( $numOptions < $numQualities ) {
  278.         for ( $i = $numOptions; $i < $numQualities; $i++ ) {
  279.             menuItem -l $allQual[$i] ("renderQualityAE" + $i);
  280.             if ($connect[0] == $allQual[$i])
  281.                 optionMenu -e -sl ($i+1) $menu;
  282.         }
  283.     } else if ( $numOptions > $numQualities ) {
  284.         for ( $i = $numQualities; $i < $numOptions; $i++ ) {
  285.             if (`menuItem -exists $optionMenuItems[$i]`)
  286.                 deleteUI $optionMenuItems[$i];
  287.         }
  288.     }
  289.  
  290.     setParent -m ..;
  291. }
  292.  
  293. //
  294. //  Procedure Name:
  295. //    AEeditRenderQuality
  296. //
  297. //
  298.  
  299. global proc AEeditRenderQuality ( string $menu, string $quality )
  300. {
  301.     string $globals[] = `ls -renderGlobals`;
  302.     string $currMenu = `optionMenu -q -v $menu`;
  303.     string $currentConnection[] = `listConnections -p true $quality`;
  304.     string $curr = ($currMenu + ".message");
  305.     if ($currentConnection[0] != $currMenu)
  306.     {
  307.         connectAttr -f $curr $quality;
  308.     }
  309.  
  310.     // Note:
  311.     //    See the comment in AEeditRenderResolution() for an
  312.     //    explanation of odd behaviour in the attribute editor
  313.     //    which can be caused by this proc.
  314. }
  315.  
  316.  
  317. ////////////////////////////////////////////////////
  318. // custom layout for the render resolution layout 
  319. ////////////////////////////////////////////////////
  320.  
  321. global string $gAErenderGlobalsResolutionLUT[];
  322.  
  323. proc string getCurrentRenderResolutionMenu()
  324. {
  325.     global string $gAErenderGlobalsResolutionLUT[];
  326.  
  327.     // look for the correct parent
  328.     //
  329.     string $curParent = `setParent -q`;
  330.     int    $index = -1;
  331.     int $i;
  332.     for ($i = 0; $i < size($gAErenderGlobalsResolutionLUT); $i += 2 ) {
  333.         if ( $curParent == $gAErenderGlobalsResolutionLUT[$i] ) {
  334.             $index = $i+1;
  335.             break;
  336.         }
  337.     }
  338.     string $menu = "renderResolutionMenu";
  339.     if ($index != -1) {
  340.         $menu = $gAErenderGlobalsResolutionLUT[$index];
  341.     }
  342.     return $menu;
  343. }
  344.  
  345. //
  346. //  Procedure Name:
  347. //     AEnewRenderResolution
  348. //
  349. //
  350.  
  351. global proc AEnewRenderResolution ( string $resolution )
  352. {
  353.     string $node = `resolutionNode`;
  354.     connectAttr -f ($node + ".message") $resolution;
  355.     showEditor $node;
  356. }
  357.  
  358. //
  359. //  Procedure Name:
  360. //    AErenderResolutionNew
  361. //
  362. //
  363.  
  364. global proc AErenderResolutionNew ( string $resolution )
  365. {
  366.     global string $gAErenderGlobalsResolutionLUT[];
  367.  
  368.     string $buffer[];
  369.     tokenize($resolution,".",$buffer);
  370.     string $nodeName = $buffer[0];
  371.  
  372.     setUITemplate -pst attributeEditorTemplate;
  373.     string $connect[] = `listConnections $resolution`;
  374.     string $allRez[] = `ls -rr`;
  375.     int $i;
  376.  
  377.     int $numUI = size($gAErenderGlobalsResolutionLUT);
  378.     $gAErenderGlobalsResolutionLUT[$numUI] = `setParent -q`;
  379.  
  380.     rowLayout -nc 3 renderResolutionLayout;
  381.         text -l "Render Resolution" renderResolutionText;
  382.         string $menu = `optionMenu -l "" renderResolutionMenu`;
  383.         optionMenu -e
  384.             -cc ("AEeditRenderResolution "+$menu+" "+$resolution)
  385.             renderResolutionMenu;
  386.             for ($i = 0; $i < size($allRez); $i++)
  387.             {
  388.                 menuItem -l $allRez[$i] ("renderResolutionAE" + $i);
  389.                 if ($connect[0] == $allRez[$i])
  390.                     optionMenu -e -sl ($i+1) $menu;
  391.             };
  392.         setParent -m ..;
  393.         button
  394.             -l "New"
  395.             -c ("AEnewRenderResolution "+ $resolution)
  396.             newRenderResolutionButton;
  397.        setParent ..;
  398.     scriptJob
  399.         -p $menu -rp
  400.         -ac $resolution ("AErenderResolutionMenuUpdate "+$menu+" "+$nodeName);
  401.     setUITemplate -ppt;
  402.     $gAErenderGlobalsResolutionLUT[$numUI+1] = $menu;
  403. }
  404.  
  405. //
  406. //  Procedure Name:
  407. //    AErenderResolutionReplace
  408. //
  409. //
  410.  
  411. global proc AErenderResolutionReplace ( string $resolution )
  412. {
  413.  
  414.     // get the nodeName
  415.     //
  416.     string $buffer[];
  417.     tokenize($resolution,".",$buffer);
  418.     string $nodeName = $buffer[0];
  419.  
  420.     // get parent
  421.     //
  422.     string $menu = getCurrentRenderResolutionMenu();
  423.  
  424.     // update the option menu
  425.     //
  426.     AErenderResolutionMenuUpdate($menu,$nodeName);
  427.  
  428.     // update the scriptJob
  429.     //
  430.     scriptJob
  431.         -p $menu -rp
  432.         -ac $resolution ("AErenderResolutionMenuUpdate "+$menu+" "+$nodeName);
  433. }
  434.  
  435. //
  436. //  Procedure Name:
  437. //    AErenderResolutionUpdate
  438. //
  439. //
  440.  
  441. global proc AErenderResolutionMenuUpdate (string $menu, string $nodeName)
  442. {
  443.     string $connect[] = `listConnections ($nodeName+".resolution")`;
  444.     string $allRes[] = `ls -rr`;
  445.     int $numResolutions = size ($allRes);
  446.  
  447.     setParent -m $menu;
  448.  
  449.     // relabel menuItems that already exist
  450.     //
  451.     int $numOptions = `optionMenu -q -ni $menu`;
  452.     string $optionMenuItems[] = `optionMenu -q -ill $menu`;
  453.     int $i = 0;
  454.     while ( $i < $numOptions && $i < $numResolutions ) {
  455.         menuItem -e -l $allRes[$i] $optionMenuItems[$i];
  456.         if ($connect[0] == $allRes[$i])
  457.             optionMenu -e -sl ($i+1) $menu;
  458.         $i++;
  459.     }
  460.  
  461.     // if we've run out of menu items and need more, create
  462.     // them now, else, delete any excess menuItems
  463.     //
  464.     if ( $numOptions < $numResolutions ) {
  465.         for ( $i = $numOptions; $i < $numResolutions; $i++ ) {
  466.             menuItem -l $allRes[$i] ("renderResolutionAE" + $i);
  467.             if ($connect[0] == $allRes[$i])
  468.                 optionMenu -e -sl ($i+1) $menu;
  469.         }
  470.     } else if ( $numOptions > $numResolutions ) {
  471.         for ( $i = $numResolutions; $i < $numOptions; $i++ ) {
  472.             if (`menuItem -exists $optionMenuItems[$i]`)
  473.                 deleteUI $optionMenuItems[$i];
  474.         }
  475.     }
  476.  
  477.     setParent -m ..;
  478. }
  479.  
  480. //
  481. //  Procedure Name:
  482. //    AEeditRenderResolution
  483. //
  484. //
  485.  
  486. global proc AEeditRenderResolution ( string $menu, string $resolution )
  487. {
  488.     string $globals[] = `ls -renderGlobals`;
  489.     string $currMenu = `optionMenu -q -v $menu`;
  490.     string $currentConnection[] = `listConnections -p true $resolution`;
  491.     string $curr = ($currMenu+".message");
  492.     if ($currentConnection[0] != $currMenu) {
  493.         connectAttr -f $curr $resolution;
  494.     }
  495.  
  496.     // Note:
  497.     //    If you create a new resolution, the attribute
  498.     //    editor will update to display the newly created node.
  499.     //    If you then click back on the renderGlobals tab to get it
  500.     //    to appear in the attribute editor and then select another
  501.     //    resolution from the optionMenu, the attribute editor will
  502.     //    update to show the last created resolution.  This behaviour,
  503.     //    although somewhat confusing, is correct.  This is because
  504.     //    the resolution node was in focus at the time, not the
  505.     //    renderGlobals node.  We could simply add a `showEditor
  506.     //     $renderGlobalsNode` to force the attribute editor to stay
  507.     //    on the renderGlobals node, but this would lead to even
  508.     //    more problematic behaviour when tear-offs are used.
  509.     //    In this case, everytime the user selected a new resolution
  510.     //    from the optionMenu in the tearoff, the main attribute
  511.     //    would always update to display the renderGlobals node,
  512.     //    which defeats the purpose of a tearoff in the first place.
  513.     //    This is why `showEditor $renderGlobalsNode` should not
  514.     //    appear in this proc.  The same applies for the proc
  515.     //    AEeditRenderQuality() - ajp.
  516. }
  517.  
  518.  
  519. //
  520. //  Procedure Name:
  521. //    checkAnimationRange
  522. //
  523. //
  524.  
  525. global proc checkAnimationRange ( string $nodeName ) 
  526. {
  527.     string $nodeAttr = $nodeName + ".animationRange";
  528.     int $value = `getAttr $nodeAttr`;
  529.     
  530.     if ( $value == 1 ) {
  531.         editorTemplate -dimControl $nodeName "startFrame" true;
  532.         editorTemplate -dimControl $nodeName "endFrame"   true;
  533.         editorTemplate -dimControl $nodeName "byFrameStep" true;
  534.     } else {
  535.         editorTemplate -dimControl $nodeName "startFrame" false;
  536.         editorTemplate -dimControl $nodeName "endFrame"   false;
  537.         editorTemplate -dimControl $nodeName "byFrameStep" false;
  538.     }
  539. }
  540.  
  541. //
  542. //  Procedure Name:
  543. //    checkModifyExtension
  544. //
  545. //
  546.  
  547. global proc checkModifyExtension ( string $nodeName ) 
  548. {
  549.     string $nodeAttr = $nodeName + ".animation";
  550.     int $animation = `getAttr $nodeAttr`;
  551.     $nodeAttr = $nodeName + ".modifyExtension";
  552.     int $modifyExtension = `getAttr $nodeAttr`;
  553.     
  554.     if ( $animation == 1 && $modifyExtension == 1 ) {
  555.         editorTemplate -dimControl $nodeName "startExtension" false;
  556.         editorTemplate -dimControl $nodeName "byExtension"    false;
  557.     } else {
  558.         editorTemplate -dimControl $nodeName "startExtension" true;
  559.         editorTemplate -dimControl $nodeName "byExtension"    true;
  560.     }
  561. }
  562.  
  563. //
  564. //  Procedure Name:
  565. //    checkRenderGlobalsMotionBlurType
  566. //
  567. //
  568.  
  569. global proc checkRenderGlobalsMotionBlurType ( string $nodeName ) 
  570. {
  571.     string $nodeAttr = $nodeName + ".motionBlur";
  572.     int $motionBlur = `getAttr $nodeAttr`;
  573.  
  574.     $nodeAttr = $nodeName + ".motionBlurType";
  575.     int $value = `getAttr $nodeAttr`;
  576.     
  577.     if( $motionBlur == 1 ) {
  578.         if ( $value == 1 ) {
  579.             editorTemplate -dimControl $nodeName "blurLength" true;
  580.             editorTemplate -dimControl $nodeName "blurSharpness" true;
  581.             editorTemplate -dimControl $nodeName "smoothValue" true;
  582.             editorTemplate -dimControl $nodeName "smoothColor" true;
  583.             editorTemplate -dimControl $nodeName "keepMotionVector" true;
  584.             editorTemplate -dimControl $nodeName "motionBlurByFrame" false;
  585.         } else {
  586.             editorTemplate -dimControl $nodeName "blurLength" false;
  587.             editorTemplate -dimControl $nodeName "blurSharpness" false;
  588.             editorTemplate -dimControl $nodeName "smoothValue" false;
  589.             editorTemplate -dimControl $nodeName "smoothColor" false;
  590.             editorTemplate -dimControl $nodeName "keepMotionVector" false;
  591.             editorTemplate -dimControl $nodeName "motionBlurByFrame" false;
  592.         }
  593.     }
  594.     else {
  595.         editorTemplate -dimControl $nodeName "blurLength" true;
  596.         editorTemplate -dimControl $nodeName "blurSharpness" true;
  597.         editorTemplate -dimControl $nodeName "smoothValue" true;
  598.         editorTemplate -dimControl $nodeName "smoothColor" true;
  599.         editorTemplate -dimControl $nodeName "keepMotionVector" true;
  600.         editorTemplate -dimControl $nodeName "motionBlurByFrame" true;
  601.     }
  602. }
  603.  
  604. //
  605. //  Procedure Name:
  606. //    checkRenderGlobalsMotionBlur
  607. //
  608. //
  609.  
  610. global proc checkRenderGlobalsMotionBlur ( string $nodeName ) 
  611. {
  612.     string $nodeAttr = $nodeName + ".motionBlur";
  613.     int $motionBlur = `getAttr $nodeAttr`;
  614.     
  615.     if ( $motionBlur == 1 ) {
  616.         editorTemplate -dimControl $nodeName "motionBlurType" false;
  617.         editorTemplate -dimControl $nodeName "motionBlurByFrame" false;
  618.         editorTemplate -dimControl $nodeName "blurLength" false;
  619.         editorTemplate -dimControl $nodeName "blurSharpness" false;
  620.         editorTemplate -dimControl $nodeName "smoothValue" false;
  621.         editorTemplate -dimControl $nodeName "smoothColor" false;
  622.         editorTemplate -dimControl $nodeName "keepMotionVector" false;
  623.         checkRenderGlobalsMotionBlurType $nodeName;
  624.  
  625.     } else {
  626.         editorTemplate -dimControl $nodeName "motionBlurType" true;
  627.         editorTemplate -dimControl $nodeName "motionBlurByFrame" true;
  628.         editorTemplate -dimControl $nodeName "blurLength" true;
  629.         editorTemplate -dimControl $nodeName "blurSharpness" true;    
  630.         editorTemplate -dimControl $nodeName "smoothValue" true;
  631.         editorTemplate -dimControl $nodeName "smoothColor" true;
  632.         editorTemplate -dimControl $nodeName "keepMotionVector" true;    
  633.     }
  634. }
  635.  
  636.  
  637. //
  638. //  Procedure Name:
  639. //    checkComposite
  640. //
  641. //
  642.  
  643. global proc checkComposite ( string $nodeName ) 
  644. {
  645.     string $nodeAttr = $nodeName + ".composite";
  646.     int $value = `getAttr $nodeAttr`;
  647.     
  648.     if ( $value == 1 ) {
  649.         editorTemplate -dimControl $nodeName "compositeThreshold" false;
  650.     } else {
  651.         editorTemplate -dimControl $nodeName "compositeThreshold" true;
  652.     }
  653. }
  654.  
  655. //
  656. //  Procedure Name:
  657. //    checkOutFormatControl
  658. //
  659. //
  660.  
  661. global proc checkOutFormatControl ( string $nodeName ) 
  662. {
  663.     string $nodeAttr = $nodeName + ".outFormatControl";
  664.     int $value = `getAttr $nodeAttr`;
  665.     
  666.     if ( $value == 2 ) {
  667.         editorTemplate -dimControl $nodeName "outFormatExt" false;
  668.     } else {
  669.         editorTemplate -dimControl $nodeName "outFormatExt" true;
  670.     }
  671. }
  672.  
  673. //
  674. //
  675. //  Procedure Name:
  676. //    checkFieldExtControl
  677. //
  678. //
  679.  
  680. global proc checkFieldExtControl ( string $nodeName ) 
  681. {
  682.     string $nodeAttr = $nodeName + ".fieldExtControl";
  683.     int $value = `getAttr $nodeAttr`;
  684.     
  685.     if ( $value == 2 ) {
  686.         editorTemplate -dimControl $nodeName "evenFieldExt" false;
  687.         editorTemplate -dimControl $nodeName "oddFieldExt" false;
  688.     } else {
  689.         editorTemplate -dimControl $nodeName "evenFieldExt" true;
  690.         editorTemplate -dimControl $nodeName "oddFieldExt" true;
  691.     }
  692. }
  693.  
  694. //
  695. //  Procedure Name:
  696. //    checkStereoExtControl
  697. //
  698. //
  699.  
  700. global proc checkStereoExtControl ( string $nodeName ) 
  701. {
  702.     string $nodeAttr = $nodeName + ".stereoExtControl";
  703.     int $value = `getAttr $nodeAttr`;
  704.     
  705.     if ( $value == 2 ) {
  706.         editorTemplate -dimControl $nodeName "leftStereoExt" false;
  707.         editorTemplate -dimControl $nodeName "rightStereoExt" false;
  708.     } else {
  709.         editorTemplate -dimControl $nodeName "leftStereoExt" true;
  710.         editorTemplate -dimControl $nodeName "rightStereoExt" true;
  711.     }
  712. }
  713.  
  714. //
  715. //  Procedure Name:
  716. //    checkRenderGlobalsAnimation
  717. //
  718. //
  719.  
  720. global proc checkRenderGlobalsAnimation ( string $nodeName ) 
  721. {
  722.     string $nodeAttr = $nodeName + ".animation";
  723.     int $value = `getAttr $nodeAttr`;
  724.     
  725.     if ( $value ) {
  726.         editorTemplate -dimControl $nodeName "animationRange" false;
  727.         editorTemplate -dimControl $nodeName "startFrame" false;
  728.         editorTemplate -dimControl $nodeName "endFrame" false;
  729.         editorTemplate -dimControl $nodeName "byFrameStep" false;
  730.         editorTemplate -dimControl $nodeName "modifyExtension" false;
  731.         editorTemplate -dimControl $nodeName "startExtension" false;
  732.         editorTemplate -dimControl $nodeName "byExtension" false;    
  733.         editorTemplate -dimControl $nodeName "extensionPadding" false;
  734.  
  735.         checkAnimationRange $nodeName;
  736.         checkModifyExtension $nodeName;
  737.     } else {
  738.         editorTemplate -dimControl $nodeName "animationRange" true;
  739.         editorTemplate -dimControl $nodeName "startFrame" true;
  740.         editorTemplate -dimControl $nodeName "endFrame" true;
  741.         editorTemplate -dimControl $nodeName "byFrameStep" true;
  742.         editorTemplate -dimControl $nodeName "modifyExtension" true;
  743.         editorTemplate -dimControl $nodeName "startExtension" true;
  744.         editorTemplate -dimControl $nodeName "byExtension" true;    
  745.         editorTemplate -dimControl $nodeName "extensionPadding" true;
  746.     }
  747. }
  748.  
  749.  
  750. //
  751. //    Procedure Names: AErenderObjNew, AErenderObjReplace, AErenderObjSet
  752. //    Purpose: render all or render active settings
  753. //
  754.  
  755. global proc AErenderObjNew (string $renderAll)
  756. {
  757.     global string $AErenderObjMenu;
  758.     setUITemplate -pst attributeEditorTemplate;
  759.     rowLayout -nc 2 renderWhatRow;
  760.         text -l "Renderable Objects";
  761.         string $AErenderObjMenu = `optionMenu -l "" `;
  762.             menuItem -l "Render All" renderObj1;
  763.             menuItem -l "Render Active" renderObj2;
  764.         setParent ..;
  765.     optionMenu -e -cc ("AErenderObjSet " + $renderAll + " " +$AErenderObjMenu) $AErenderObjMenu;
  766.     scriptJob -p $AErenderObjMenu -rp -ac $renderAll
  767.          ("checkRenderAllMenu " + $renderAll + " " + $AErenderObjMenu);
  768.     
  769.     setUITemplate -ppt;
  770.  
  771.     // If already render-active, set the menu as such...
  772.     if (`getAttr $renderAll` == 0)
  773.         optionMenu -e -sl 2 $AErenderObjMenu;
  774. }
  775.  
  776. global proc AErenderObjReplace (string $renderAll)
  777. {
  778.     global string $AErenderObjMenu;
  779.     if (`optionMenu -exists $AErenderObjMenu`) {
  780.         optionMenu -e -cc ("AErenderObjSet " + $renderAll + " " + $AErenderObjMenu) $AErenderObjMenu;
  781.         scriptJob -p $AErenderObjMenu -rp -ac $renderAll
  782.              ("checkRenderAllMenu "+$renderAll +" "+ $AErenderObjMenu);
  783.     }
  784. }
  785.  
  786. global proc checkRenderAllMenu (string $renderAll, string $AErenderObjMenu)
  787. {
  788.     if (`getAttr $renderAll` == 0)
  789.     {
  790.         optionMenu -e -sl 2 $AErenderObjMenu;
  791.     } else {
  792.         optionMenu -e -sl 1 $AErenderObjMenu;
  793.     }
  794. }
  795.  
  796. global proc AErenderObjSet (string $renderAll, string $AErenderObjMenu)
  797. {
  798.     string $curr = `optionMenu -q -v $AErenderObjMenu`;
  799.     if ($curr == "Render All")
  800.         setAttr $renderAll 1;
  801.     else if ($curr == "Render Active")
  802.         setAttr $renderAll 0;
  803. }
  804.  
  805. global proc AEenvFogNew (string $fog)
  806. //
  807. // Description:
  808. //        Setup up button that makes fog.
  809. //
  810. {
  811.     setUITemplate -pst attributeEditorTemplate;
  812.  
  813.         attrNavigationControlGrp -l "Environment Fog"
  814.                 -at $fog envFogControl;
  815.  
  816.     setUITemplate -ppt;
  817. }
  818.  
  819. global proc AEenvFogReplace (string $fog)
  820. //
  821. // Description:
  822. //        Replace the button with the command to create fog
  823. //        for the new camera.
  824. //
  825. {
  826.     attrNavigationControlGrp -edit
  827.         -at $fog envFogControl;
  828. }
  829.  
  830.  
  831. //
  832. //  Procedure Name:
  833. //    AErenderGlobalsTemplate
  834. //
  835. //
  836.  
  837. global proc AErenderGlobalsTemplate ( string $nodeName ) 
  838. {
  839. editorTemplate -beginScrollLayout;
  840.     
  841.     editorTemplate -beginLayout "Renderable Objects + Cameras" -collapse 0;
  842.         editorTemplate -suppress "renderAll";
  843.         editorTemplate -callCustom "AErenderObjNew" "AErenderObjReplace" "renderAll";
  844.  
  845.         editorTemplate -addControl "imageFormat";
  846.         editorTemplate -addSeparator;
  847.         editorTemplate -callCustom "AEcameraListNew" "AEcameraListReplace";
  848.         editorTemplate -suppress "cameras";
  849.     editorTemplate -endLayout;
  850.  
  851.     editorTemplate -beginLayout "Render Quality + Resolution" -collapse 0;
  852.         editorTemplate -callCustom "AErenderQualityNew" 
  853.                 "AErenderQualityReplace"
  854.                 "quality";
  855.         editorTemplate -callCustom "AErenderResolutionNew" 
  856.                 "AErenderResolutionReplace"
  857.                 "resolution";
  858.  
  859.         editorTemplate -suppress "quality";
  860.         editorTemplate -suppress "resolution";
  861.     editorTemplate -endLayout;
  862.  
  863.     editorTemplate -beginLayout "Animation";
  864.         editorTemplate -addControl "animation" "checkRenderGlobalsAnimation";
  865. //        editorTemplate -addControl "animationRange";
  866.         editorTemplate -addControl "animationRange" "checkAnimationRange";
  867.  
  868.         editorTemplate -addControl "startFrame";
  869.         editorTemplate -addControl "endFrame";
  870.         editorTemplate -addControl "byFrameStep";
  871.         editorTemplate -suppress   "byFrame";
  872.  
  873.         editorTemplate -addControl "modifyExtension" "checkModifyExtension";
  874.         editorTemplate -addControl "startExtension";
  875.         editorTemplate -addControl "byExtension";    
  876.         editorTemplate -addControl "extensionPadding";
  877.     editorTemplate -endLayout;
  878.  
  879.     editorTemplate -beginLayout "Motion Blur";    
  880.         editorTemplate -addControl "motionBlur" "checkRenderGlobalsMotionBlur";
  881.         editorTemplate -addControl "motionBlurType" "checkRenderGlobalsMotionBlurType";
  882.         editorTemplate -addControl "motionBlurByFrame";
  883.         editorTemplate -addControl "blurLength";
  884.         editorTemplate -addControl "blurSharpness";
  885.         editorTemplate -addControl "smoothValue";
  886.         editorTemplate -interruptOptimize;    
  887.         editorTemplate -addControl "smoothColor";
  888.         editorTemplate -interruptOptimize;    
  889.         editorTemplate -addControl "keepMotionVector";
  890.     editorTemplate -endLayout;
  891.  
  892.     editorTemplate -beginLayout "Special Effects";
  893.         editorTemplate -addControl "ignoreFilmGate";
  894.         editorTemplate -addControl "gammaCorrection";
  895.         editorTemplate -addControl "composite" "checkComposite";
  896.         editorTemplate -addControl "compositeThreshold";
  897.         editorTemplate -addControl "clipFinalShadedColor";
  898.         editorTemplate -callCustom "AEenvFogNew" "AEenvFogReplace" "fogGeometry";        
  899.         editorTemplate -addControl "enableDepthMaps";
  900.         editorTemplate -addControl "shadowPass";
  901.     editorTemplate -endLayout;
  902.  
  903.     editorTemplate -beginLayout "Output Extensions";
  904.         editorTemplate -addControl "useMayaFileName";
  905.         editorTemplate -addControl "useFrameExt";
  906.         editorTemplate -addControl "outFormatControl" "checkOutFormatControl";
  907.         editorTemplate -addControl "outFormatExt";
  908.         editorTemplate -addSeparator;
  909.  
  910.         editorTemplate -addControl "fieldExtControl" "checkFieldExtControl";
  911.         editorTemplate -addControl "oddFieldExt";
  912.         editorTemplate -addControl "evenFieldExt";
  913.  
  914.         editorTemplate -suppress "stereoExtControl" "checkStereoExtControl";
  915.         editorTemplate -suppress "leftStereoExt";
  916.         editorTemplate -suppress "rightStereoExt";
  917.     editorTemplate -endLayout;
  918.     
  919.     editorTemplate -beginLayout "Memory and Performance Options";
  920.         editorTemplate -addControl "maximumMemory";
  921.         editorTemplate -addControl "useFileCache";
  922.         editorTemplate -addControl "optimizeInstances";
  923.         editorTemplate -addControl "reuseTessellations";
  924.         editorTemplate -interruptOptimize;    
  925.         editorTemplate -addControl "useDisplacementBoundingBox";
  926.         editorTemplate -addControl "recursionDepth";
  927.         editorTemplate -addControl "leafPrimitives";
  928.         editorTemplate -addControl "subdivisionPower";
  929.         editorTemplate -addControl "subdivisionHashSize";
  930.         editorTemplate -addControl "logRenderPerformance";
  931.     editorTemplate -endLayout;
  932.  
  933.     // include/call base class/node attributes
  934.     AEdependNodeTemplate $nodeName;
  935.  
  936.     // suppressed attributes
  937.     editorTemplate -suppress "topRegion";
  938.     editorTemplate -suppress "leftRegion";
  939.     editorTemplate -suppress "bottomRegion";
  940.     editorTemplate -suppress "rightRegion";
  941.     editorTemplate -suppress "useRenderRegion";
  942.     editorTemplate -suppress "fogGeometry";
  943.  
  944. editorTemplate -addExtraControls;
  945. editorTemplate -endScrollLayout;
  946. }
  947.